/*  
    ! 能够修改数组内容的方法
    - push(xxx) 在数组的最后添加一个新的元素
    - pop() 移除数组最后一个元素
    - unshift(xxx) 在数组的最前面添加一个新的元素
    - shift() 移除数组最开始的一个元素
    - reverse() 逆转数组，颠倒数组的起始和结束
    - sort() 排序 ，默认情况下是自然排序，按照字符的编码的顺序，并不是数学排序
    - splice() 【极其之重要】 能够完成数组的 删除，插入，替换
            第一个参数表示起始的索引位置
            第二个参数表示要删除替换的元素个数
            其他参数表示要插入的元素
    - slice()

    ! 不会修改原来的数组内容，只会生成一个新的结果
    - concat(xxx) 用于数组的拼接合并,不会修改任何数组，会产生一个新的数组
    - join() 用于数组元素的合并,将数组元素以指定字符分割合并到一起
    - indexOf() 用于获取指定元素的索引,如果出个元素，获取的是从左到右的第一个元素，如果索引的返回值为-1，说明数组中不存在指定元素
    - lastIndexOf() 用于获取指定元素的索引,如果出个元素，获取的是从右到左的第一个元素，如果索引的返回值为-1，说明数组中不存在指定元素

    - forEach()
    - map()
    */

    var arr = [2,3,56,89,100];

    arr.push(1);

    console.log('push(1)之后的数组',arr);


    arr.pop();
    console.log('pop() 之后的数组',arr);


    arr.unshift(15);
    console.log('unshift(15) 之后的数组',arr);


    arr.shift();
    console.log('shift() 之后的数组',arr);


    arr.reverse();
    console.log('reverse() 之后的数组',arr);


    arr.sort();
    console.log('sort() 之后的数组',arr);


    // 从索引2位置开始，删除掉2个元素
    arr.splice(2,2);
    console.log('splice(2,2) 之后的数组',arr);

    arr.splice(2,0,66,88,66);
    console.log('splice(2,0,66,88) 之后的数组',arr);


    var arr2 = [101,102];
    var result1 = arr.concat(arr2);
    var result2 = arr2.concat(arr);

    console.log('arr1.concat(arr2) 的结果',result1);
    console.log('arr2.concat(arr) 的结果',result2);
    console.log('concat 之后的数组',arr,arr2);


    var result3 = arr.join();
    console.log('arr.join() 的结果',result3);

    var result4 = arr.join('-');
    console.log("arr.join('-') 的结果",result4);


    var index1 = arr.indexOf(2);
    console.log('arr.indexOf(2) 的结果',index1);